﻿using AexoManager.Datos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AexoManager.BussinesLogic
{
    public class BSCostoParte: BSParent
    {
        /// <summary>
        /// Obtiene un costo vigente para la Parte que se pasa por parametro
        /// </summary>
        /// <param name="unaParte">Parte que deseo consultar costo vigente</param>
        /// <returns>Costo Vigente</returns>
        public CostoParte ObtenerCosto(Parte unaParte)
        {
            try
            {
                var unCosto = context().CostoParteGet(unaParte.IdParte);
                return unCosto;
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        /// <summary>
        /// Obtiene una lista de los costos de una parte. No filtra por los costos vigentes. Trae todos ordenados por fecha desde
        /// </summary>
        /// <param name="unaParte">Parte que deseo consultar los costos</param>
        /// <returns>Lista de costos ordenados por FechaDesde</returns>
        public IList<CostoParte> ObtenerCostos(Parte unaParte)
        {
            try
            {
                var costos = context().CostosPartesGet(unaParte.IdParte);
                return costos;
            }
            catch (Exception)
            {

                throw;
            }
        }

        /// <summary>
        /// Agrega un costo para una parte
        /// </summary>
        /// <param name="unCosto">Costo a agregar</param>
        public void AgregarCosto(CostoParte unCosto)
        {
            try
            {
                context().CostoPartesAgregar(unCosto);
                context().Commit();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
    }
}
